#include"process.h"
#define TARGET_SIZE 1024*1024 //1MB
#define DSIZE 1024*10

// void download()
// {
//     int target=TARGET_SIZE;
//     int total=0;
//     while(total<target)
//     {
//         usleep(STIME);
//         total+=DSIZE;
//         process_v2(total*100/target);
//     }
//     printf("\n");
// }

void download(callback cb)
{
    int target=TARGET_SIZE;
    int total=0;
    int testcnt=100;
    while(total<=target)
    {
        usleep(STIME);//用简单的休眠时间，模拟本科下载花费时间
        total+=DSIZE;
        double rate=total*100.0/target;
        if(rate>50.0&&testcnt) 
        {
            total=target/2;
            testcnt--;
        }
        cb(rate);//回调函数
        //process_v2(total*100/target);
    }
    cb(MAX_RATE);
    printf("\n");
}

int main()
{
    download(process_v3);
    //process_v1();
    // int rate=0;
    // while(rate<=100)
    // {
    //     process_v2(rate++);
    //     usleep(12345);//模拟一次特定的应用场景
    // }
    return 0;
}